Fix irregular gdk_frame_clock_get_frame_time
authorDaniel van Vugt <daniel.van.vugt@canonical.com>
Fri, 15 Sep 2017 09:49:12 +0000 (17:49 +0800)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 10 Dec 2017 01:52:36 +0000 (20:52 -0500)
commit3b2f9395905ec2d9696bcf51497781236c95ec63
treea6c1536055df962b31cb9216bf2c4eee20d36e63
parent7a17865b22f06d65da446c4f179ea83e63874b09
Fix irregular gdk_frame_clock_get_frame_time

This fixes stuttering in animations that rely on the regularity of
gdk_frame_clock_get_frame_time.

https://bugzilla.gnome.org/show_bug.cgi?id=787665

BEFORE
gdkgears:
58 FPS and visibly stuttering
gnome-maps on a 59.95Hz monitor:
"paint" g_get_monotonic_time +17278μs, gdk_frame_clock_get_frame_time +17278μs
"paint" g_get_monotonic_time +17449μs, gdk_frame_clock_get_frame_time +17426μs
"paint" g_get_monotonic_time +17620μs, gdk_frame_clock_get_frame_time +17600μs

AFTER
gdkgears:
60 FPS and smoother
gnome-maps on a 59.95Hz monitor:
"paint" g_get_monotonic_time +18228μs, gdk_frame_clock_get_frame_time +16680μs
"paint" g_get_monotonic_time +15010μs, gdk_frame_clock_get_frame_time +16680μs
"paint" g_get_monotonic_time +17134μs, gdk_frame_clock_get_frame_time +16680μs
gdk/gdkframeclockidle.c